\section{Ejercicio 9}

\subsection{Evalución de ecuanimidad del algoritmo Lottery Scheduler}

Para realizar una evaluación de ecuanimidad lo primero que hicimos fue analizar la definición de la misma, esta es;
\paragraph{Fairness o ecuanimidad:} que cada proceso reciba una dosis justa de CPU (para alguna nocion de justicia)
\paragraph{}Si el scheduler es justo, entonces tiene sentido esperar que cada tarea reciba aproximadamente la misma
cantidad de recursos luego de un número alto de simulaciones.
De la definición pensamos que el mejor experimento seriá evaluar que distribución de ticks realiza el algoritmo en
un determinado tiempo o periodo. Pensamos que esto nos va a permitir tener una medida de comparación. 
Corrimos el algoritmo una cantidad n de veces con distintas semillas y mismo tamaño de quantum.
El objetivo es mostrar que al ser pseudo-random, la semilla no produce favoritismo entre los procesos

Las pruebas las realizamos con el siguiente lote de tareas
\begin{verbatim}
@0:
*4 TaskCPU 265
\end{verbatim}

Cabe destacar que el nro de ticks que consume cada tarea tiene que ser mayor a la muestra que vamos a realizar, en 
nuestro caso la muestra será de 100 tick y las tareas consumirán 265.

Con este escenario corrimos 1000 veces el algoritmo con los siguientes parámetros:
\begin{verbatim}
core = 1, 
costo de cambio de contexto = 0, 
quantum = 5 ticks de duración 
una semilla pseudoaleatoria distinta para cada corrida. 
\end{verbatim}

En cada ejecución observamos la distribución de tareas (ticks consumidos por cada tarea) de los primeros 
100 ticks ejecutados por el simulador.\\
El sigueinte gráfico muestra el promedio de ciclos por tarea en función de la cantidad de iteraciones.

\begin{figure}[H]
  \begin{center}
  \includegraphics[width=0.95\textwidth]{imagenes/fairnessLotterySche.png} 
  \end{center}
  \caption{Diagrama de Gantt - SchedLottery FairnessLottery - 1 Core - Penalidad 5 por Context Switch}
  \label{ej10_SC}
\end{figure}

En el gráfico se puede observar como los promedios de ticks consumidos tienden a un mismo valor a medida que 
aumenta la cantidad de iteraciones.

En particular, los promedios convergen a 25 ciclos. Esto tiene sentido, ya que estamos ejecutando 4 tareas
que no bloquean, sin costo de cambio de contexto y como lo que se esta observando son los primeros 100 ticks
el promedio esperado es de 100/4=25 tick por tarea.
